package default0

import (
	"bytes"
	_ "embed"
	"fmt"
	"github.com/spf13/viper"
)

type Configuration struct {
	Server   Server
	Database Database
}

type Server struct {
	Port int
}

type Database struct {
	User     string
	Password string
}

//go:embed config.yaml
var f []byte

func RunDefault() {

	//embed 方式 ,作为默认配置项
	config := viper.New()
	//开始读取环境变量，如果没有调用这个函数，则下面无法读取到path的值
	config.AutomaticEnv()
	config.SetConfigType("yaml")
	config.ReadConfig(bytes.NewReader(f))

	config.WatchConfig()

	// 配置读到结构体  Viper 默认将 **结构体字段名转换为小写 + 下划线** 的形式匹配 YAML 键。
	var cfg Configuration
	if err := config.Unmarshal(&cfg); err != nil {
		fmt.Println(err)
	} else {
		fmt.Println(cfg)
	}

}
